package com.common.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.common.dto.AccountInfoDTO;
import com.common.dto.PrivilegeDTO;
import com.common.service.base.IService;

public interface AccountInfoService extends IService<AccountInfoDTO> {

	Map<String, Object> init();
	
	/**
	 * 获取账号信息
	 * @author wuronglai
	 * @param account [id,personCode,accountCode]
	 * @return
	 */
	AccountInfoDTO getAccountInfo(AccountInfoDTO account);

	List<PrivilegeDTO> findPrivilegesByPersonCode(String personCode);


	Map<String, Object> login(AccountInfoDTO account,HttpServletRequest request);

	/**
	 * 明文
	 * @param accountInfo
	 * @return
     */
	AccountInfoDTO decryptAccountPwd(AccountInfoDTO accountInfo);

	/**
	 * 密文
	 * @param accountInfo
	 * @return
     */
	AccountInfoDTO encryptAccountPwd(AccountInfoDTO accountInfo);

	/**
	 * 条件查询
	 * @param accountInfo
	 * @return
	 */
	AccountInfoDTO selectByDTO(AccountInfoDTO accountInfo);

    /**
     * 管理员修改用户密码
     * Created by wrl on 2017/07/22
     * @param accountInfo
     * @return
     */
    Map<String,Object> changePwd(AccountInfoDTO accountInfo);

    /**
     * 获取权限列表
     * @param personCode
     * @return
     */
    List<String> selectAuthorityList(String personCode);
    
    /**
     * 解锁操作，删除日志状态
     * @param lockedUser
     * @param loginUser
     */
    public void unlock(String lockedUser,String loginUser);
}
